package com.chixing.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 职位详情表
 * </p>
 *
 * @author Jason Marslyon
 * @since 2022-10-04
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("job_detail")
@ApiModel(value = "JobDetail对象", description = "职位详情表")
public class JobDetail implements Serializable {

    private static final long serialVersionUID = 1L;


    @ApiModelProperty("职位id")
    @TableId(value = "job_id", type = IdType.AUTO)
    private Integer jobId;

    @ApiModelProperty("职位名称")
    private String jobName;

    @ApiModelProperty("职位类型")
    private String jobType;

    @ApiModelProperty("工作经验")
    private String jobExperience;

    @ApiModelProperty("职位描述")
    private String jobDescribe;

    @ApiModelProperty("公司id")
    private Integer companyId;

    @ApiModelProperty("学历要求")
    private String jobDegree;

    @ApiModelProperty("高管id")
    private Integer manageId;

    @ApiModelProperty("最高薪资")
    private Float jobMaxSalary;

    @ApiModelProperty("最低薪资")
    private Float jobMinSalary;

    @ApiModelProperty("职位标签")
    private String jobLabel;

    @ApiModelProperty("职位所在省份")
    private String jobLocProvince;

    @ApiModelProperty("职位所在城市")
    private String jobLocCity;

    @ApiModelProperty("职位所在区域")
    private String jobLocArea;

    @ApiModelProperty("招聘人数")
    private Integer jobNeedNum;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    @ApiModelProperty("发布时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate jobPubTime;


    @ApiModelProperty("职位状态")
    private Integer jobStatic;

    private String jobDetailVersion;

    private String text1;

    private String text2;


    @TableField(exist = false)
private CompanyDetail companyDetail;

    public CompanyDetail getCompanyDetail() {
        return companyDetail;
    }

    public void setCompanyDetail(CompanyDetail companyDetail) {
        this.companyDetail = companyDetail;
    }

    public Integer getJobId() {
        return jobId;
    }

    public void setJobId(Integer jobId) {
        this.jobId = jobId;
    }
    public String getJobName() {
        return jobName;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }
    public String getJobType() {
        return jobType;
    }

    public void setJobType(String jobType) {
        this.jobType = jobType;
    }
    public String getJobExperience() {
        return jobExperience;
    }

    public void setJobExperience(String jobExperience) {
        this.jobExperience = jobExperience;
    }
    public String getJobDescribe() {
        return jobDescribe;
    }

    public void setJobDescribe(String jobDescribe) {
        this.jobDescribe = jobDescribe;
    }
    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }
    public String getJobDegree() {
        return jobDegree;
    }

    public void setJobDegree(String jobDegree) {
        this.jobDegree = jobDegree;
    }
    public Integer getManageId() {
        return manageId;
    }

    public void setManageId(Integer manageId) {
        this.manageId = manageId;
    }
    public Float getJobMaxSalary() {
        return jobMaxSalary;
    }

    public void setJobMaxSalary(Float jobMaxSalary) {
        this.jobMaxSalary = jobMaxSalary;
    }
    public Float getJobMinSalary() {
        return jobMinSalary;
    }

    public void setJobMinSalary(Float jobMinSalary) {
        this.jobMinSalary = jobMinSalary;
    }
    public String getJobLabel() {
        return jobLabel;
    }

    public void setJobLabel(String jobLabel) {
        this.jobLabel = jobLabel;
    }
    public String getJobLocProvince() {
        return jobLocProvince;
    }

    public void setJobLocProvince(String jobLocProvince) {
        this.jobLocProvince = jobLocProvince;
    }
    public String getJobLocCity() {
        return jobLocCity;
    }

    public void setJobLocCity(String jobLocCity) {
        this.jobLocCity = jobLocCity;
    }
    public String getJobLocArea() {
        return jobLocArea;
    }

    public void setJobLocArea(String jobLocArea) {
        this.jobLocArea = jobLocArea;
    }
    public Integer getJobNeedNum() {
        return jobNeedNum;
    }

    public void setJobNeedNum(Integer jobNeedNum) {
        this.jobNeedNum = jobNeedNum;
    }
    public LocalDate getJobPubTime() {
        return jobPubTime;
    }

    public void setJobPubTime(LocalDate jobPubTime) {
        this.jobPubTime = jobPubTime;
    }
    public Integer getJobStatic() {
        return jobStatic;
    }

    public void setJobStatic(Integer jobStatic) {
        this.jobStatic = jobStatic;
    }
    public String getJobDetailVersion() {
        return jobDetailVersion;
    }

    public void setJobDetailVersion(String jobDetailVersion) {
        this.jobDetailVersion = jobDetailVersion;
    }
    public String getText1() {
        return text1;
    }

    public void setText1(String text1) {
        this.text1 = text1;
    }
    public String getText2() {
        return text2;
    }

    public void setText2(String text2) {
        this.text2 = text2;
    }

    @Override
    public String toString() {
        return "JobDetail{" +
            "jobId=" + jobId +
            ", jobName=" + jobName +
            ", jobType=" + jobType +
            ", jobExperience=" + jobExperience +
            ", jobDescribe=" + jobDescribe +
            ", companyId=" + companyId +
            ", jobDegree=" + jobDegree +
            ", manageId=" + manageId +
            ", jobMaxSalary=" + jobMaxSalary +
            ", jobMinSalary=" + jobMinSalary +
            ", jobLabel=" + jobLabel +
            ", jobLocProvince=" + jobLocProvince +
            ", jobLocCity=" + jobLocCity +
            ", jobLocArea=" + jobLocArea +
            ", jobNeedNum=" + jobNeedNum +
            ", jobPubTime=" + jobPubTime +
            ", jobStatic=" + jobStatic +
            ", jobDetailVersion=" + jobDetailVersion +
            ", text1=" + text1 +
            ", text2=" + text2 +
        "}";
    }
}
